Skip to content

pybricks.common.BLE: Update type hints and add missing documentation#164

Merged
laurensvalk merged 3 commits into
pybricks:masterfrom
fkleon:ble-type-fixes
May 28, 2026
Merged

pybricks.common.BLE: Update type hints and add missing documentation#164
laurensvalk merged 3 commits into
pybricks:masterfrom
fkleon:ble-type-fixes

Conversation

@fkleon
Copy link
Copy Markdown
Contributor

@fkleon fkleon commented Jun 24, 2025

Hi @laurensvalk and @dlech

I'm implementing the Pybricks BLE interfaces in my pybricks-ble project, and noticed that some of the type hints are inaccurate/incomplete. That makes the type checker unhappy when trying to mimic Pybricks behaviour, but with the changes in this PR I was able to get everything working (see fkleon/pybricks-ble#9).

Update API docs and code completions for the following changes:

Copy link
Copy Markdown
Member

@dlech dlech left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment on lines +92 to +94
"broadcast",
"observe",
"observe_enable",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of these aren't in the docs, so I'm not sure they are meant to be public.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

observe_enable() was undocumented, but mentioned in the release changelog. I could extract that into a separate MR if you'd rather not add it to the public docs.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait and see what @laurensvalk says.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ping @laurensvalk - just checking in whether you've seen this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your patience! We're now getting around to updating the docs to match the implementation.

observe_enable was a workaround for a bug on Technic Hub, but it has been worked around internally so it was dropped in pybricks/pybricks-micropython@023d6f6#diff-4ac5e4af4cd98cb94f67e215e8d64eafd56bf7cc96f4d75637abfc4df5e51956

fkleon added 3 commits May 28, 2026 11:12
Update type hint for broadcast_channel to Optional, as None is allowed.
- Add overloads for broadcast(). It accepts either a single value, or a tuple,
  or a list.

- Adjust return type of observe(). It either returns a single value, or a tuple.
@laurensvalk laurensvalk merged commit 5f64082 into pybricks:master May 28, 2026
@laurensvalk
Copy link
Copy Markdown
Member

Merged, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants